package com.xzq.erp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xzq.erp.domain.dto.AfterSalesServiceDTO;
import com.xzq.erp.domain.dto.PageDTO;
import com.xzq.erp.domain.po.AfterSalesService;
import com.xzq.erp.domain.query.AfterSalesServicePageQuery;
import com.xzq.erp.domain.vo.AfterSalesServiceVO;

import java.util.List;

/**
 * <p>
 * 售后服务表 服务类
 * </p>
 *
 * @author xzq
 * @since 2025-05-16
 */
public interface IAfterSalesServiceService extends IService<AfterSalesService> {

    /**
     * 分页获取售后服务列表
     *
     * @param query 查询条件
     * @return 分页结果
     */
    PageDTO<AfterSalesServiceVO> getAfterSalesServiceList(AfterSalesServicePageQuery query);

    /**
     * 更新售后服务
     *
     * @param afterSalesServiceDTO 售后服务信息
     */
    void update(AfterSalesServiceDTO afterSalesServiceDTO);

    /**
     * 添加售后服务
     *
     * @param afterSalesServiceDTO 售后服务信息
     * @return 新增售后服务ID
     */
    Long add(AfterSalesServiceDTO afterSalesServiceDTO);

    /**
     * 根据ID获取售后服务详情
     *
     * @param id 售后服务ID
     * @return 售后服务详情
     */
    AfterSalesServiceVO getDetailById(Long id);

    /**
     * 更新售后服务状态
     *
     * @param id 售后服务ID
     * @param status 新状态
     */
    void updateStatus(Long id, Integer status);

    /**
     * 提交满意度评价
     *
     * @param id 售后服务ID
     * @param score 满意度评分(1-5分)
     */
    void submitSatisfactionScore(Long id, Integer score);

    /**
     * 获取所有售后服务记录
     * @return
     */
    List<AfterSalesServiceVO> getAllServiceRecords();
} 